The NSL 1.0 product shipped as a feature of Mac OS 8.5 in October 1998, offering the ability to browse through Internet services such as FTP and HTTP via TCP/IP similarly to the way users traditionally browse for AppleTalk services using the Chooser. NSL provides a protocol-independent way for applications to discover available network services with minimal network traffic. By adopting this technology, applications can provide a better end user experience for users looking for network services. With the NSL 1.0 release, two plug-ins were included for SLP (Service Location Protocol) and DNS (Domain Name System) services. The NSL 1.1 product offers a standard user interface to browse through TCP/IP services and provides two additional protocol services for searching- NBP (Name Binding Protocol) and LDAP (Lightweight Directory Access Protocol) plug-ins. With the NSL 1.0 release, we heard your feedback requests for a standard HI and LDAP service support, and have implemented these features into the NSL 1.1 product. The developer documentation included in this SDK has been updated for these new features and API calls.
Please read through this entire Read Me file for required development environment specifications, installation instructions, etc. Please refer to the accompanying developer documentation for further details on using the NSL software and APIs.
Contents of the SDK
• NSL 1.1 SDK Read Me (this document)
• NSL Manager and DNS, SLP, LDAP, and NBP plug-ins.
• Connect To... application
• NSL Developer Documentation
• NSL Network Administrator's Guide
• Sample Code including sample plug-in and a sample application
• Header files for the NSL API and plug-ins
Hardware and Software Requirements
A Power Macintosh running Mac OS 9. However Mac OS 8.5 or later can be used for development purposes.
Installation and Setup Instructions
1. Drag the contents of the NSL Library & Plug-ins folder into the Extensions folder inside the System Folder. Mac OS 8.5 and 8.6 systems include the 1.0 versions of the NSLPPCLib, DNSPlugin, and SLPPlugin. For Mac OS 8.5 and 8.6 systems, follow the same process above and replace the 1.0 version files with the 1.1 version included in the SDK package.
2. Restart your computer.
3. Launch the "Connect To..." application to begin using NSL.
Setting up DNS Servers
To test with a DNS server, enter data as DNS TXT records. Each line consists of a URL. The format of the text record is as follows:
<hostname> <TTL> TXT <URL>
To avoid time out problems, make sure the nameserver specified in the TCP/IP control panel is active and reachable.
Setting up Neighborhoods for SLP to register in
SLP will choose a Neighborhoods to register services in the following manner:
1) If the service registering with NSL uses the Neighborhood parameter in the 1.1 StandardRegisterURL call, SLP will use this Neighborhood.
2) If no Neighborhood is specified (most likely case, which includes services that use the 1.0 registration APIs), SLP will look to see if there are any domains in the search domains field in the TCP/IP Control Panel and select the first one.
3) Otherwise, SLP will try and pull out the domain name from the url itself (ie http://www.apple.com would have a domain name of apple.com and use this as the Neighborhood).
4) If none of the above applies and the url is an IP number (ie http://229.229.45.53, then SLP will use a default neighborhood of "Local Services" which is just a localized text string for the SLP "DEFAULT" scope.
Known Issues
•The 1.1 version of SLP conforms to the SLPv2 specification and is incompatible with previous versions of the SLP Plugin.
•There is an outstanding bug with Asanté Ethernet drivers and the use of previous versions of the SLP Plugin. When registering services via NSL and SLP, machines with Asanté drivers will lose their AppleTalk networks. This should not be an issue with the 1.1 version of the SLP Plugin.
•To register or discover services outside the local subnet, IP Multicast Router capability must be enabled. Note that MacIP does not support multicasting.
•If you are using CodeWarrior's PowerPlant to develop a plugin, you need to override the implementation of LThread in order to call the NSLNewThread and NSLDisposeThread.